Precoding for Multiple Input Multiple Output (MIMO) communication systems is used to enhance signal gain and/or to improve receiver signal separation between multiple transmitted streams of information. Precoding is e.g. used in wireless communication standards such as 3GPP LTE, 3GPP2 UMB and IEEE 802.16e. In all these standards OFDM is used as the modulation technique for transmission.
Precoding is performed by multiplying streams or a stream, to be transmitted, by a matrix or a vector, respectively. The matrix or vector representing used precoding (also denoted precoder in the following) should match the channel for good separation of different streams, and thereby achieve a high receive Signal to Noise Ratio (SNR) for each stream. The input-output relation in a OFDM system transmitting over a wireless channel, can be described in the frequency domain as,y=HWx+n,   (B-1)
where W is the precoding matrix, H the channel matrix, x is the input vector containing the symbols to be transmitted, n the vector of noise samples, and y the output signal at the receiver. The relation in equation B-1 holds for every subcarrier in the OFDM system. However, the same precoding matrix W is usually employed for a group of adjacent subcarriers.
The model in equation B-1 is applicable in a wireless communication system where a base station, having multiple transmit antennas, communicates with a receiving mobile station, and also in a wireless communication system where multiple base stations, each having multiple transmit antennas, communicate with the same receiving mobile station. In the latter case, the transmission channel H has the same number of columns and the precoding matrix W the same number of rows as the total number of transmit antennas for all cooperating base stations. This scenario is called a Cooperative Multipoint Transmission (COMP) system and a codebook for a large number of transmit antennas is thus required.
The precoding matrix W is selected based on the transmission channel H, i.e. the precoder is channel-dependent. Also, the transmission rank is selected based on the channel H . The transmission rank is equivalent to the number of transmitted streams and is equal to the number of columns of the precoding matrix W. Hence, if rank one is selected, the precoding matrix W becomes a precoding vector.
FIG. 1 shows schematically a wireless communication system where one base station is transmitting two streams precoded by a rank two precoding matrix W. In this case, the transmitting base station has four transmit antennas and the receiving mobile station has two receive antennas. At the receiver a receiver filter is used with the purpose to separate the two streams.
FIG. 2 shows schematically a scenario where three transmitting base stations in a wireless communication system, each having four transmit antennas, are transmitting three streams to a receiving mobile station equipped with three receive antennas. This is an example of a COMP transmission where multiple base stations are transmitting a coordinated signal towards a receiving mobile station. The transmission channel H has thus twelve columns and three rows in this case, since there are in total twelve transmit and three receive antennas. Further, since three streams are transmitted, the precoding matrix W has twelve rows and three columns, and is thus taken from a codebook for twelve transmitter antennas. Each base station transmits a sub-matrix of this twelve-by-three matrix W, for instance, base station transmits the three streams using a precoding matrix obtained as the top four rows and the three columns of the precoding matrix W.
The receiver thus receives y, and with knowledge of the combined channel-precoder product G=HW , the receiver can create a receiver filter R that estimates the transmitted symbol vector as,{circumflex over (x)}=Ry.   (B-2)
A commonly used receiver filter is the zero forcing filter,R=(G*G)−1G*,   (B-3)
or the Linear Minimum Mean Squared Error (LMMSE) receiver filter,R=(G*G+Cnn)−1G*,   (B-4)
where Cnn is the noise plus interference covariance matrix at the receiver.
If information about the channel H is available at the transmitter, the corresponding precoder W is selected and used for transmission. Criteria for selecting precoder W, including its rank, could be to maximize the minimum Signal to Interference plus Noise Ratio (SINR) for the estimated symbols in Other criteria for selecting W are also known, such as maximizing the total number of transmitted information bits, taking into account all streams. Note that the column dimension of precoder W, also known as the rank of the transmission, is also part of the selection of precoder W so both a rank and a preferred precoder W within all possible precoding matrices with this rank (equivalent to number of columns) is selected.
In general, the channel H is unknown at the transmitter. If the receiver measures and feeds back the full channel information H to the transmitter, and the transmitter decides the precoding matrix W based on the obtained channel information from the receiver, a vast amount of feedback signalling is needed, which is undesirable.
In order to reduce signalling overhead, a conventional way is to construct a limited set of possible precoders Wi, i=1, . . . , N for a given rank. A collection of these precoding matrices for a given rank is denoted as a precoding codebook. The codebook for a certain rank, or equivalently number of spatial streams, thus consists of N unique precoding matrices (or vectors if the rank is one), each of size M times R, where M is the number of transmit antenna ports and R is the number of parallel spatial streams or transmission rank, respectively.
The codebook is known and stored at both the transmitter and receiver. Since, the receiver often has better knowledge about the channel H between the transmitter and receiver, the receiver can select a rank and an optimal precoder W from the codebook of this rank based on knowledge about the channel, and then feed back an index representing the rank and the selected precoder to the transmitter. The transmitter may then use the precoder corresponding to the index fed back by receiver for a transmission; or the transmitter may have other sources of information to choose a different precoder than the one selected by the receiver. Hence, the feedback from the receiver should only be seen as a recommendation, and it is the transmitter that makes the final decision on which precoding matrix that should be used for a particular transmission. For instance, the transmitter may choose to reduce the rank of the precoder, or to interpolate the precoding matrices between successive feedback reports. This operation of using feedback information to indicate the selected precoding matrix is denoted closed loop precoding.
Alternatively, the transmitter may pseudo-randomly cycle through a set of precoders if a feedback control link is not available, which is denoted open loop precoding. To support open loop precoding, it is useful if different precoding matrices in a set of precoders only differs by a permutation of its columns or rows. Permutation of columns is equivalent to permuting the mapping of streams to the precoding matrix, and permutation of rows is equivalent to permuting the mapping of the precoding matrix to the physical antennas. This cycling of mappings will ensure that each stream encounter a channel with a variation in quality, to avoid the case that one stream always has bad channel quality, which could be the case in an open loop system. Hence, a codebook designed for open loop operation has a subset of precoding matrices which differ only by permutation of columns or rows.
In FIG. 2, a feedback operation of a wireless communication system is schematically illustrated. The receiver estimates the channels from all transmit antennas to all receive antennas using a channel estimation unit. The estimated channel is then used in a precoding matrix selection unit where the rank and precoding matrix is selected from a codebook of available precoding matrices for this rank.
The design of the codebook is a topic which has drawn a lot of attention in the recent years. It is a problem to find an optimal codebook since its performance depends on the channel models and performance metric used for the evaluation. However, a standard measure to evaluate the performance of different codebooks is the minimum pair-wise distance dmin between all precoders in the codebook. A codebook with a large dmin is considered to have a better performance than a codebook with small dmin.
Other desirable properties of a codebook relate to implementation complexity requirements. Two such properties are the constant modulus and constrained alphabet properties, which means that all matrix elements of all precoders in the codebook have the same absolute magnitude, and are taken from a finite complex valued constellation such as {+1,−1,+i,−i} or 8-PSK. The constant modulus property assures that all M power amplifiers at the transmitter are utilized equally and transmits with the same power, and the constrained alphabet property simplifies receiver computations, such as when inverting and multiplying matrices.
Another desirable property of a codebook is the nested property, which implies that a precoding matrix of rank R is a sub-matrix of a precoding matrix of rank R+1. For instance, a rank one precoding vector is a column in a rank two precoding matrix, and so on. This property simplifies decision making in the receiver regarding which rank and which precoder to select, since results from a lower rank calculation can be stored and re-used when calculating selection measures for other, either higher or lower ranks.
Furthermore, codebook restriction is a property which allows the communication system to restrict which, of all precoding matrices in the codebook and for which ranks the receiver is allowed to select in precoder selection. Thereby, the system can exclude some precoding matrices or ranks, if beneficial. For one codebook, it is difficult to make each precoder suitable for any scenario. For example, in a certain channel scenario, maybe only a subset of the precoders within a codebook are suitable for use. In this case, if codebook restriction is employed, the receiver will have a smaller precoder search space to find the best precoder, which can reduce the complexity of the receiver and to improve the performance in a particular channel scenario.
In the 3GPP LTE specification; with M=4 transmit antenna ports, there are N=16 precoders, each generated by a Householder transformation from its corresponding generating vector, defined for each rank R=1, 2, 3 and 4, respectively. Hence, N*R=64 different precoders are stored in the User Equipments (UEs) and the eNBs (base stations in LTE), respectively. If codebook restriction is employed, then the number of precoders eligible for selection can be reduced, for instance by removing all precoding matrices of the highest rank.
In the 3GPP LTE-Advanced (LTE-A) communication system, which is supposed to be an extension of the LTE system, up to eight antenna ports will be supported to further increase system performance, such as peak data rate, cell average spectrum efficiency, etc, and therefore higher order MIMO with eight antenna ports will be supported. In the LTE system, the maximum number of antenna ports available for codebook precoding is four.